/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package studenttrack.entity;

import java.io.Serializable;
import stException.LecturerAlreadyAssociatedWithModuleException;
import stException.LecturerNotAssociatedWithModuleException;
import stException.PreReqModuleAlreadyAssociatedWithModuleException;
import stException.PreReqModuleNotAssociatedWithModuleException;
import stException.StudentAlreadyOnCourseException;
import stException.StudentNotOnCourseException;

/**
 *
 * @author tg227
 */
public interface ModuleInterface extends Serializable {

    void addLecturer(String emailID) throws LecturerAlreadyAssociatedWithModuleException;

    void addPreReqModule(String moduleCode) throws PreReqModuleAlreadyAssociatedWithModuleException;

    void addStudent(String emailID) throws StudentAlreadyOnCourseException;

    String getCode();

    String getCoordinatorID();

    int getCreditWeighting();

    String[] getLecturers();

    String getName();

    String[] getPreReqModules();

    char getStage();

    void removeLecturer(String emailID) throws LecturerNotAssociatedWithModuleException;

    void removePreReqModule(String moduleCode) throws PreReqModuleNotAssociatedWithModuleException;

    void removeStudent(String emailID) throws StudentNotOnCourseException;

    void setCode(String code);

    void setCoordinatorID(String coordinatorID);

    void setCreditWeighting(int creditWeighting);

    void setName(String name);

    void setStage(char stage);

    String toString();

}
